package com.lzh.file.mapper;

import com.lzh.file.entity.FileInfo;
import com.lzh.runke.core.entity.spec.BaseSpec;
import com.lzh.runke.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * Mapper: 文件信息 Mapper
 *
 * @author linmeijie
 * @date 2019-7-4
 */
@Mapper
public interface FileInfoMapper extends BaseMapper<FileInfo, BaseSpec> {

    /**
     * 根据id删除文件信息数据
     *
     * @param id
     * @return
     */
    int remove(String id);

    /**
     * 更新是否已与业务表关联
     *
     * @param id
     * @return
     */
    int relate(String id);

    int relateBatch(@Param("fileInfos") FileInfo[] fileInfos);

    /**
     * 获取指定时间范围内未关联业务表的文件信息
     *
     * @param fromDate
     * @param toDate
     * @return
     */
    List<FileInfo> loadUnRelatedFilenames(@Param("fromDate") Date fromDate, @Param("toDate") Date toDate);

    /**
     * 根据文件名获取文件信息
     *
     * @param filename
     * @return
     */
    FileInfo findByFilename(String filename);

    /**
     * 根据文件名获取文件信息
     *
     * @param fileInfos
     * @return
     */
    List<FileInfo> findByFilenames(@Param("fileInfos") FileInfo[] fileInfos);

    /**
     * 更新是否已与业务表关联
     *
     * @param id
     * @return
     */
    int unRelate(String id);

    int unRelateBatch(@Param("fileInfos") FileInfo[] fileInfos);
}